]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Also account for folder popup's close buttons
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 16 May 2013 17:35:12 +0000 (19:35 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Sun, 19 May 2013 21:30:39 +0000 (23:30 +0200)
As the close button of folder popups overlaps at the top, it ends
up being cut off if the folder is located at the very top of the
view. Fix this glitch by taking the button's overlap into account
in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=694371

js/ui/appDisplay.js

index 097c8e54172d820fa17127fc3c478a37b22437f1..7f92d12fdcd97bdb5994731d303460217e088745 100644 (file)
@@ -598,9 +598,11 @@ const FolderIcon = new Lang.Class({
         // Position the popup above or below the source icon
         if (side == St.Side.BOTTOM) {
             this._popup.actor.show();
+            let closeButtonOffset = -this._popup.closeButton.translation_y;
             let y = this.actor.y - this._popup.actor.height;
-            this._popup.parentOffset = y < 0 ? -y : 0;
-            this._popup.actor.y = Math.max(y, 0);
+            let yWithButton = y - closeButtonOffset;
+            this._popup.parentOffset = yWithButton < 0 ? -yWithButton : 0;
+            this._popup.actor.y = Math.max(y, closeButtonOffset);
             this._popup.actor.hide();
         } else {
             this._popup.actor.y = this.actor.y + this.actor.height;
@@ -647,11 +649,11 @@ const AppFolderPopup = new Lang.Class({
         this.actor.add_actor(this._boxPointer.actor);
         this._boxPointer.bin.set_child(this._view.actor);
 
-        let closeButton = Util.makeCloseButton();
-        closeButton.connect('clicked', Lang.bind(this, this.popdown));
-        this.actor.add_actor(closeButton);
+        this.closeButton = Util.makeCloseButton();
+        this.closeButton.connect('clicked', Lang.bind(this, this.popdown));
+        this.actor.add_actor(this.closeButton);
 
-        this._boxPointer.actor.bind_property('opacity', closeButton, 'opacity',
+        this._boxPointer.actor.bind_property('opacity', this.closeButton, 'opacity',
                                              GObject.BindingFlags.SYNC_CREATE);
 
         global.focus_manager.add_group(this.actor);